A variety of computer systems and electronic devices use memory that is no volatile. In other words, the memory does not lose stored data when power is disconnected. These nonvolatile memories can be reprogrammed, read, and erased electronically, and are well-suited to store a variety of data such as music in digital audio players, pictures in digital cameras, and configuration data in cellular telephones. Such memory includes devices commonly known as flash memory, named in part because a flash operation is used to erase the content of a block of memory cells before it is reprogrammed. This type of memory is often packaged for consumer use in products such as CompactFlash memory cards, USB flash memory drives, and other such devices.
Flash memory typically comprises a number of cells, each programmable to one of at least two data states, where each data state can represent a data value such as a digit (e.g., a bit) or digits of data. A typical flash memory cell comprises a field effect transistor having an electrically isolated charge storage structure such as a floating gate or charge trap that controls electrical conduction between source and drain regions of the memory cell. Data is represented by a charge stored on the charge storage structure, and the resulting change in conductivity observed between the source and drain regions.
The charge storage structure separates a control gate from the source and drain regions of the memory cell. Electrons stored on the charge storage structure are electrically insulated from the control gate and the drain and source by a dielectric material, such as a tunnel oxide. When the memory cell is read by placing a specified voltage on the control gate, the electrical impedance between the source and drain of the device will either allow or not allow current to flow, depending on the effective threshold voltage (Vt) of the memory cell. The stored charge partially cancels out or modifies an electric field produced by the control gate, resulting in a change in the effective threshold voltage (Vt) of the memory cell. The presence or absence of current in response to a particular voltage applied to the control gate can be sensed and used to determine whether the memory cell is in a particular data state representing a particular data value, such as a one or zero value.
Some flash memory cells can be programmed to one of three or more data states, and are often referred to as multi-level memory cells. For example, a multi-level memory cell that can be programmed to any of four states can store two bits of data per cell, thereby doubling the amount of data that can be stored relative to a conventional single-bit memory cell.
Memory cells are typically arranged in a two-dimensional array of rows and columns, where the memory cells in a row are coupled via an access line, often called a wordline, and the memory cells in a column are coupled to a data line, often called a bitline. The wordlines and bitlines are used during data read and program functions to either select certain memory cells for reading or to select certain memory cells for programming (which is sometimes referred to as “writing”).
Memory cells are susceptible to a variety of factors that can influence accuracy of stored data, such as cosmic rays, read-induced interference, and other factors that can alter the charge stored on the charge storage structure of a flash memory cell. Induced electric or magnetic fields, capacitive coupling, and finite resistance of the conductors and insulators can also cause unwanted coupling or interference between bitlines and wordlines.
Any of these factors can reduce the accuracy of reading a memory cell. Factors such as these can be even more significant in multi-level memories having more then two possible data states per memory cell, as the difference between adjacent data states becomes more difficult to accurately discern as the number of possible data states increases.